// IDataBuffer.hh
// 数据缓冲区抽象接口
#ifndef _IDATA_BUFFER_HH
#define _IDATA_BUFFER_HH

// 帧信息结构体
struct FrameInfo {
    unsigned char* buffer;    // 帧数据缓冲区
    int size;                 // 帧大小（字节）
    int frameType;            // 帧类型
};

// 数据缓冲区抽象接口
class IDataBuffer {
public:
    virtual ~IDataBuffer() = default;
    
    // 获取一帧数据
    // 返回值：帧大小（字节），如果没有数据返回0或负数
    virtual int getFrame(FrameInfo& info) = 0;
    
    // 写入一帧数据
    // 参数：
    //   buffer - 数据缓冲区指针
    //   size - 数据大小（字节）
    //   frameType - 帧类型
    virtual void putFrame(unsigned char* buffer, int size, int frameType) = 0;
    
    // 重置缓冲区
    virtual void reset() = 0;
    
    // 检查缓冲区是否有数据
    virtual bool hasData() const = 0;
};

#endif // _IDATA_BUFFER_HH

